//
//  QJService.h
//  QJWork
//
//  Created by 高中雷 on 15/5/30.
//  Copyright (c) 2015年 高中雷. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "QJHttpRequest.h"
#import "QJServiceHelper.h"

/**
 * 所有的网络都继续此类
 * 比如请求的方式，请求的参数，请求的返回结果如何处理(是字典还是模型)
 * 子类必须调用[self engineClass] 方法
 */

@interface QJService : NSObject


@property (nonatomic,strong) NSString *hostName;


+(QJService*)service;

/** 
 * 子类调用方法,父类赋值;
 * 该方法是获取setting.plist host，
 * 返回的名字必须是你要host的名字
 * see hostName
 */
-(NSString *)engineClass;

/**
 * GET 请求
 * @param url 去掉host往后的链接
 * @param param 请求的参数
 * @param object 对象，可以是NSSting和Class类型，当object=nil时候返回id类型数据需自已解析
 * @param handler 以block形式返回数据
 */
-(AFHTTPRequestOperation *)getWithUrl:(NSString *)url param:(id)param modelObject:(id)object withHandle:(QJBlockRequst)handler failure:(failureBlock)failureHandler;

/**Post 请求
 * @param url 去掉host往后的链接
 * @param param 请求的参数
 * @param object 对象，可以是NSSting和Class类型，当object=nil时候返回id类型数据需自已解析
 * @param handler 以block形式返回数据
 */
- (AFHTTPRequestOperation *)postWithUrl:(NSString *)url param:(id)param modelObject:(id)object withHandle:(QJBlockRequst)hand failure:(failureBlock)failureHandler;

/**Post 请求
 * @param url 去掉host往后的链接
 * @param param 请求的参数
 * @param imagearray 添加图片数组
 * @param object 对象，可以是NSSting和Class类型，当object=nil时候返回id类型数据需自已解析
 * @param handler 以block形式返回数据
 */

- (AFHTTPRequestOperation *)postWithUrl:(NSString *)url param:(id)param image:(NSArray *)imageArray modelObject:(id)object withHandle:(QJBlockRequst)handler   failure:(failureBlock)failureHandler;


- (AFHTTPRequestOperation *)postDataWithUrl:(NSString *)url param:(id)param modelObject:(id)object withHandle:(QJBlockRequst)handler   failure:(failureBlock)failureHandler;

//以后有更新删除方法可以继续添加.....

@end
